Python结合Window计划任务监测邮件代码示例 | 您所在的位置:网站首页 › python 任务计划 › Python结合Window计划任务监测邮件代码示例 |
本篇文章小编给大家分享一下Python结合Window计划任务监测邮件代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。 整体思路 通过Python zemail库实现邮件读取 将最新一封邮件ID进行保存,第二次执行时比对邮件ID,判断是否是新邮件 通过Python pymsgbox库实现window弹窗提示 配置Window计划任务,每1分钟执行一次 步骤一:邮件读取 读取邮件通过Python zemail库进行,使用前通过 pip install zemail进行安装,下面来看个邮件读取的例子 import zmail #获取最新邮件并打印邮件信息 server = zmail.server('[email protected]', 'mdgxgiwpnkspbxgx') mail = server.get_latest() zmail.show(mail) print(mail["id"]) print(mail["from"]) print(mail["to"]) print(mail["subject"]) print(mail["context_text"]) print(mail["context_html"])在配置邮件server时,注意邮箱要开启POP3/SMTP服务,QQ邮箱开启是在:设置->开启POP3/SMTP服务,同时设置授权码,server配置第二个是自动生成的授权码 步骤二:新旧邮件比对 想要提示用户有最新的邮件,就要把最后一封邮件的信息进行记录,在指定时间后,拿着两封邮件的信息进行比对,这里我们使用的邮件ID(注意ID并不唯一,如要确保一定的准确,可以用ID结合邮件标题等多方面信息) 记录邮件信息放在了一个txt文件中,每次先读取再写入 old_mailid = open('id.txt', 'r').readline() # 写入新邮件ID with open('id.txt', mode='w+', encoding='utf-8') as f: f.write(str(mail_id))步骤三:实现window弹窗提示 像这种操作早有前人已经替我们完成了,这种库有很多,这里采用的是pymsgbox,使用前注意通过pip install pymsgbox进行安装 先了解下pymsgbox弹窗的多种形式 pymsgbox.alert(text='', title='', button='OK') pymsgbox.confirm(text='', title='', buttons=['OK', 'Cancel']) pymsgbox.pompt(text='', title='' , default='') pymsgbox.password(text='', title='', default='', mask='*')显然我们这里用不到太复杂的弹窗,只要一个alert就阔以了 #判断邮件是否是最新 if old_mailid != str(mail_id): pymsgbox.alert("你有一封新邮件!") # 弹窗提示有新邮件步骤四:配置Window计划任务 前面都完成之后,执行python文件已经可以提示最新邮件了,现在遇到的问题就是如果自动化起来,总不能自己手动点吧 这里配置Window计划任务,首先创建一个新任务,起个名字autoemail 配置触发器,每1分钟执行一次,在操作这里,要执行的内容是什么呢,显然Window并不能直接执行python,这里创建一个.bat文件,在文件中执行Python文件,在计划任务这里指定.bat文件即可 最后 现在自己手动给邮箱发一封邮件之后,等待1分钟后,就可以看到pymsgbox的弹窗提示了,现在就可以去邮箱里面去查收邮件了,或者也可以直接把邮件内容一起显示出来,随意啦 |
CopyRight 2018-2019 实验室设备网 版权所有 |